package com.zzu.team.dao;

import com.zzu.team.entity.Result;
import com.zzu.team.entity.ResultVo;
import com.zzu.team.entity.Tester;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.relational.core.sql.In;

import java.util.List;

public interface ResultDao {


    // 根据主键id删除
    int deleteByPrimaryKey(Integer id);

    // 批量删除  根据主键id批量删除
    int deleteBatchByPrimaryKey(@Param("ids") List<Integer> ids);

    // 批量删除  根据用户id tester_id批量删除
    int deleteBatchByTesterId(@Param("testerIds") List<Integer> testerIds);

    // 批量删除  根据问题id question_id批量删除
    int deleteBatchByQuestionId(@Param("questionIds") List<Integer> questionIds);

    // 单个插入
    int insert(Result record);

    int insertSelective(Result record);

    // 批量插入
    int insertBatch(@Param("results") List<Result> results);


    // 根据主键查询
    Result selectByPrimaryKey(Integer id);

    // 根据用户id查询
    List<Result> selectByTesterId(Integer testerId);

    // 根据问题id查询
    List<Result> selectByQuestionId(Integer questionId);


    int updateByPrimaryKeySelective(Result record);

    int updateByPrimaryKey(Result record);


    // 查询 所有用户的最终测试结果
    List<ResultVo> selectAllTesterResult(@Param("page")Integer page, @Param("limit")Integer limit, @Param("tester") Tester tester);

    // 查询符合条件的用户个数
    long count(@Param("tester")Tester tester);


}

